<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Hardware Abstraction Layer (HAL)</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen_style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.cypress.com/"><img alt="Logo" src="logo.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Hardware Abstraction Layer (HAL)</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__group__hal__sdhc.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">API Reference</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">SDHC (SD Host Controller)<div class="ingroups"><a class="el" href="group__group__hal.html">HAL Drivers</a></div></div></div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">General Description</h2>
<p >High level interface to the Secure Digital Host Controller (SDHC). </p>
<p >The SDHC driver allows data to be read from and written to an SD Card using the SDHC block. The data is transferred in blocks with a block size of 512 bytes.</p>
<h1><a class="anchor" id="subsection_sdhc_features"></a>
Features</h1>
<ul>
<li>Supports the 4-bit interface</li>
<li>Supports Ultra High Speed (UHS-I) mode</li>
<li>Supports Default Speed (DS), High Speed (HS), SDR12, SDR25 and SDR50 speed modes</li>
</ul>
<h1><a class="anchor" id="subsection_sdhc_quickstart"></a>
Quick Start</h1>
<p >Initialize SDHC by using <a class="el" href="group__group__hal__sdhc.html#gabb5aded07e0cf80c36ec8ac0d6a5532a">cyhal_sdhc_init</a> by selecting the pins according to the target device used. Specify the SDHC configuration using the configuration structure (const <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a> * config). <br  />
 See <a class="el" href="group__group__hal__sdhc.html#subsection_sdhc_snippet_1">Snippet 1: SDHC Initialization and configuration</a></p>
<h1><a class="anchor" id="subsection_sdhc_code_snippets"></a>
Code Snippets</h1>
<h2><a class="anchor" id="subsection_sdhc_snippet_1"></a>
Snippet 1: SDHC Initialization and configuration</h2>
<p >The following snippet is used to initialize the SDHC block. SDHC object - <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a>, SDHC card configuration structure (const <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a> * config). The pins connected to the SDHC block needs to be provided to the <a class="el" href="group__group__hal__sdhc.html#gabb5aded07e0cf80c36ec8ac0d6a5532a">cyhal_sdhc_init</a> function. </p><div class="fragment"><div class="line"> </div>
<div class="line"><span class="preprocessor">    #define ENABLE_LED_CONTROL      false</span></div>
<div class="line"><span class="preprocessor">    #define LOW_VOLTAGE_SIGNALLING  false</span></div>
<div class="line"><span class="preprocessor">    #define IS_EMMC                 false</span></div>
<div class="line"><span class="preprocessor">    #define BUS_WIDTH               4</span></div>
<div class="line"> </div>
<div class="line">    <a class="code hl_typedef" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> rslt;</div>
<div class="line"> </div>
<div class="line">    <a class="code hl_struct" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> sdhc_obj;</div>
<div class="line"> </div>
<div class="line">    <span class="keyword">const</span> <a class="code hl_struct" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a> sdhc_config = { ENABLE_LED_CONTROL,</div>
<div class="line">                                              LOW_VOLTAGE_SIGNALLING,</div>
<div class="line">                                              IS_EMMC, BUS_WIDTH };</div>
<div class="line"> </div>
<div class="line">    rslt = <a class="code hl_function" href="group__group__hal__sdhc.html#gabb5aded07e0cf80c36ec8ac0d6a5532a">cyhal_sdhc_init</a>(&amp;sdhc_obj, &amp;sdhc_config, CMD, CLK,</div>
<div class="line">                           DAT0, DAT1, DAT2, DAT3, DAT4, DAT5, DAT6, DAT7,</div>
<div class="line">                           CARD_DETECT, IO_VOLT_SEL, CARD_IF_PWREN,</div>
<div class="line">                           CARD_MECH_WRITEPROT, LED_CTL, EMMC_RESET, NULL);</div>
<div class="line"> </div>
<div class="ttc" id="agroup__group__hal__impl__hw__types_html_structcyhal__sdhc__t"><div class="ttname"><a href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a></div><div class="ttdoc">SDHC object.</div><div class="ttdef"><b>Definition:</b> cyhal_hw_types.h:1247</div></div>
<div class="ttc" id="agroup__group__hal__sdhc_html_gabb5aded07e0cf80c36ec8ac0d6a5532a"><div class="ttname"><a href="group__group__hal__sdhc.html#gabb5aded07e0cf80c36ec8ac0d6a5532a">cyhal_sdhc_init</a></div><div class="ttdeci">cy_rslt_t cyhal_sdhc_init(cyhal_sdhc_t *obj, const cyhal_sdhc_config_t *config, cyhal_gpio_t cmd, cyhal_gpio_t clk, cyhal_gpio_t data0, cyhal_gpio_t data1, cyhal_gpio_t data2, cyhal_gpio_t data3, cyhal_gpio_t data4, cyhal_gpio_t data5, cyhal_gpio_t data6, cyhal_gpio_t data7, cyhal_gpio_t card_detect, cyhal_gpio_t io_volt_sel, cyhal_gpio_t card_pwr_en, cyhal_gpio_t card_mech_write_prot, cyhal_gpio_t led_ctrl, cyhal_gpio_t emmc_reset, cyhal_clock_t *block_clk)</div><div class="ttdoc">Initialize the SDHC block and connected card.</div></div>
<div class="ttc" id="agroup__group__hal__sdhc_html_structcyhal__sdhc__config__t"><div class="ttname"><a href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a></div><div class="ttdoc">Defines configuration options for the SDHC block.</div><div class="ttdef"><b>Definition:</b> cyhal_sdhc.h:269</div></div>
<div class="ttc" id="agroup__group__result_html_gaca79700fcc701534ce61778a9bcf57d1"><div class="ttname"><a href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a></div><div class="ttdeci">uint32_t cy_rslt_t</div><div class="ttdoc">Provides the result of an operation as a structured bitfield.</div><div class="ttdef"><b>Definition:</b> cy_result.h:438</div></div>
</div><!-- fragment --><h2><a class="anchor" id="subsection_sdhc_snippet_2"></a>
Snippet 2: Reading a block of data from an SD Card</h2>
<p >The following snippet reads a block of data from the SD Card. </p><div class="fragment"><div class="line"><span class="preprocessor">    #define DEFAULT_BLOCKSIZE 512</span></div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Data buffer to store the data read from the SD Card</span></div>
<div class="line">    uint8_t read_buff[DEFAULT_BLOCKSIZE] = { 0 };</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Starting block address from which the data needs to be read</span></div>
<div class="line">    uint32_t block_address = 0;</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Number of blocks that needs to be read</span></div>
<div class="line">    <span class="keywordtype">size_t</span> block_count = 1;</div>
<div class="line"> </div>
<div class="line">    rslt = <a class="code hl_function" href="group__group__hal__sdhc.html#ga2f3442c949be8d599eaefb78cea881a9">cyhal_sdhc_read</a>(&amp;sdhc_obj, block_address, read_buff, &amp;block_count);</div>
<div class="line"> </div>
<div class="ttc" id="agroup__group__hal__sdhc_html_ga2f3442c949be8d599eaefb78cea881a9"><div class="ttname"><a href="group__group__hal__sdhc.html#ga2f3442c949be8d599eaefb78cea881a9">cyhal_sdhc_read</a></div><div class="ttdeci">cy_rslt_t cyhal_sdhc_read(cyhal_sdhc_t *obj, uint32_t address, uint8_t *data, size_t *length)</div><div class="ttdoc">Attempts to read data synchronously over the SDHC peripheral.</div></div>
</div><!-- fragment --><h2><a class="anchor" id="subsection_sdhc_snippet_3"></a>
Snippet 3: Writing a block of data to an SD Card</h2>
<p >The following snippet writes a block of data to the SD Card. </p><div class="fragment"><div class="line"><span class="preprocessor">    #define DEFAULT_BLOCKSIZE 512</span></div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Number of bytes of data to be written into the SD Card</span></div>
<div class="line"><span class="preprocessor">    #define  DATA_BYTE_COUNT (2 * DEFAULT_BLOCKSIZE)</span></div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Data buffer that stores the data to be written into the SD Card</span></div>
<div class="line">    uint8_t write_buff[DATA_BYTE_COUNT];</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Starting block address into which the data is to be written</span></div>
<div class="line">    uint32_t block_address = 0;</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Number of blocks that needs to be written</span></div>
<div class="line">    <span class="keywordtype">size_t</span> block_count = 2;</div>
<div class="line"> </div>
<div class="line">    <span class="comment">// Generate sample data</span></div>
<div class="line">    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; DATA_BYTE_COUNT; i++)</div>
<div class="line">    {</div>
<div class="line">        write_buff[i] = i;</div>
<div class="line">    }</div>
<div class="line"> </div>
<div class="line">    rslt = <a class="code hl_function" href="group__group__hal__sdhc.html#gaa5767503dcb047409777306b78ad5355">cyhal_sdhc_write</a>(&amp;sdhc_obj, block_address, write_buff, &amp;block_count);</div>
<div class="line"> </div>
<div class="ttc" id="agroup__group__hal__sdhc_html_gaa5767503dcb047409777306b78ad5355"><div class="ttname"><a href="group__group__hal__sdhc.html#gaa5767503dcb047409777306b78ad5355">cyhal_sdhc_write</a></div><div class="ttdeci">cy_rslt_t cyhal_sdhc_write(cyhal_sdhc_t *obj, uint32_t address, const uint8_t *data, size_t *length)</div><div class="ttdoc">Attempts to write data synchronously over SDHC peripheral.</div></div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
API Reference</h2></td></tr>
<tr class="memitem:group__group__hal__results__sdhc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__results__sdhc.html">SDHC HAL Results</a></td></tr>
<tr class="memdesc:group__group__hal__results__sdhc"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDHC specific return codes. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structcyhal__sdhc__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a></td></tr>
<tr class="memdesc:structcyhal__sdhc__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines configuration options for the SDHC block.  <a href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">More...</a><br /></td></tr>
<tr class="separator:structcyhal__sdhc__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structcyhal__sdhc__data__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__data__config__t">cyhal_sdhc_data_config_t</a></td></tr>
<tr class="memdesc:structcyhal__sdhc__data__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines data configuration.  <a href="group__group__hal__sdhc.html#structcyhal__sdhc__data__config__t">More...</a><br /></td></tr>
<tr class="separator:structcyhal__sdhc__data__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structcyhal__sdhc__cmd__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__cmd__config__t">cyhal_sdhc_cmd_config_t</a></td></tr>
<tr class="memdesc:structcyhal__sdhc__cmd__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines command configuration for <a class="el" href="group__group__hal__sdhc.html#gafb5534f9654bbd459481936c5abe40ad">cyhal_sdhc_send_cmd</a> function.  <a href="group__group__hal__sdhc.html#structcyhal__sdhc__cmd__config__t">More...</a><br /></td></tr>
<tr class="separator:structcyhal__sdhc__cmd__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaded71f4751306e4983c1e8315c569fa1"><td class="memItemLeft" align="right" valign="top"><a id="gaded71f4751306e4983c1e8315c569fa1" name="gaded71f4751306e4983c1e8315c569fa1"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><b>cyhal_sdhc_event_callback_t</b>) (void *callback_arg, <a class="el" href="group__group__hal__sdhc.html#gab58a2ffca59383a72cf8bc49d74cf17b">cyhal_sdhc_event_t</a> event)</td></tr>
<tr class="memdesc:gaded71f4751306e4983c1e8315c569fa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for SDHC interrupts. <br /></td></tr>
<tr class="separator:gaded71f4751306e4983c1e8315c569fa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga612f43553069268d48d7ce0bee45722a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga612f43553069268d48d7ce0bee45722a">cyhal_sdhc_card_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga612f43553069268d48d7ce0bee45722aa38bcb59920941b83f0c06332df4cfc56">CYHAL_SDHC_SD</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga612f43553069268d48d7ce0bee45722aac83d0855095c3088049b98df879f5b81">CYHAL_SDHC_SDIO</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga612f43553069268d48d7ce0bee45722aa8c0d3085eecb94c70be970fd616ad478">CYHAL_SDHC_EMMC</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga612f43553069268d48d7ce0bee45722aa0634c94b291436bcd2ff7810df539610">CYHAL_SDHC_COMBO</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga612f43553069268d48d7ce0bee45722aa824d9d7d02b24e15f4310f1697477a9f">CYHAL_SDHC_UNUSABLE</a>
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga612f43553069268d48d7ce0bee45722aa2e07f8e30e45059fee59fcf4e341a925">CYHAL_SDHC_NOT_EMMC</a>
<br />
 }</td></tr>
<tr class="memdesc:ga612f43553069268d48d7ce0bee45722a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Card types.  <a href="group__group__hal__sdhc.html#ga612f43553069268d48d7ce0bee45722a">More...</a><br /></td></tr>
<tr class="separator:ga612f43553069268d48d7ce0bee45722a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab58a2ffca59383a72cf8bc49d74cf17b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gab58a2ffca59383a72cf8bc49d74cf17b">cyhal_sdhc_event_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba11e93e28cdb3730b5f8c6bb5f29cb7d5">CYHAL_SDHC_CMD_COMPLETE</a> = 0x00001
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bad08d507a635f8269ba7649643339f213">CYHAL_SDHC_XFER_COMPLETE</a> = 0x00002
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba7cc7318fbda0daa6154e29752dead031">CYHAL_SDHC_BGAP_EVENT</a> = 0x00004
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba80af4d0d45768f30bb1e7e20580eccb5">CYHAL_SDHC_DMA_INTERRUPT</a> = 0x00008
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba41feae89fc60f05dc290968dea4a382b">CYHAL_SDHC_BUF_WR_READY</a> = 0x00010
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba3844ed703bfd516cd920d251a2d60b89">CYHAL_SDHC_BUF_RD_READY</a> = 0x00020
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba2cd1dd430b29e174da66c8d08cbaca17">CYHAL_SDHC_CARD_INSERTION</a> = 0x00040
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba43775fcc705ff58f61b111825bdb34f2">CYHAL_SDHC_CARD_REMOVAL</a> = 0x00080
, <br />
&#160;&#160;<b>CYHAL_SDHC_INT_A</b> = 0x00200
, <br />
&#160;&#160;<b>CYHAL_SDHC_INT_B</b> = 0x00400
, <br />
&#160;&#160;<b>CYHAL_SDHC_INT_C</b> = 0x00800
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bac79ac0f3bae5a083079c478099b6f6fc">CYHAL_SDHC_RE_TUNE_EVENT</a> = 0x01000
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bac5d8eae9a3ca751227264f692a4f9ebd">CYHAL_SDHC_FX_EVENT</a> = 0x02000
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bab1f59c81773e6e2083623bee85dd9c9b">CYHAL_SDHC_CQE_EVENT</a> = 0x04000
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bae5a8f7697409d7c683405808581a9a57">CYHAL_SDHC_ERR_INTERRUPT</a> = 0x08000
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17ba3be10ae218d0d48ef63f98a9238fac46">CYHAL_SDHC_ALL_INTERRUPTS</a> = 0x0FEFF
<br />
 }</td></tr>
<tr class="memdesc:gab58a2ffca59383a72cf8bc49d74cf17b"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDHC interrupt triggers.  <a href="group__group__hal__sdhc.html#gab58a2ffca59383a72cf8bc49d74cf17b">More...</a><br /></td></tr>
<tr class="separator:gab58a2ffca59383a72cf8bc49d74cf17b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11968d8b79af97a6a319fa709d84861e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga11968d8b79af97a6a319fa709d84861e">cyhal_sdhc_io_voltage_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga11968d8b79af97a6a319fa709d84861ea73c0e6ae5ad1181266b9228447065006">CYHAL_SDHC_IO_VOLTAGE_3_3V</a> = 0U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga11968d8b79af97a6a319fa709d84861eac68fd890d8ac8bcbf19bf07dd59a50ab">CYHAL_SDHC_IO_VOLTAGE_1_8V</a> = 1U
<br />
 }</td></tr>
<tr class="memdesc:ga11968d8b79af97a6a319fa709d84861e"><td class="mdescLeft">&#160;</td><td class="mdescRight">I/O voltage levels.  <a href="group__group__hal__sdhc.html#ga11968d8b79af97a6a319fa709d84861e">More...</a><br /></td></tr>
<tr class="separator:ga11968d8b79af97a6a319fa709d84861e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e3877ab007a39419bdefc0abae2713d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga5e3877ab007a39419bdefc0abae2713d">cyhal_sdhc_io_volt_action_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga5e3877ab007a39419bdefc0abae2713dad0ce65c933019daf09508992c47fd22e">CYHAL_SDHC_IO_VOLT_ACTION_NEGOTIATE</a> = 0U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga5e3877ab007a39419bdefc0abae2713dadc0de97a76aca9884a9a13e8efeb0477">CYHAL_SDHC_IO_VOLT_ACTION_SWITCH_SEQ_ONLY</a> = 1U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga5e3877ab007a39419bdefc0abae2713da3463e1d05c9ee096b7a34485102a216c">CYHAL_SDHC_IO_VOLT_ACTION_NONE</a> = 2U
<br />
 }</td></tr>
<tr class="memdesc:ga5e3877ab007a39419bdefc0abae2713d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDHC I/O voltage select principle.  <a href="group__group__hal__sdhc.html#ga5e3877ab007a39419bdefc0abae2713d">More...</a><br /></td></tr>
<tr class="separator:ga5e3877ab007a39419bdefc0abae2713d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace71512915eb3049e3e7552f98db94c6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gace71512915eb3049e3e7552f98db94c6">cyhal_sdhc_cmd_response_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggace71512915eb3049e3e7552f98db94c6a05d0960fc0a1479992bd79a2b64d3dca">CYHAL_SDHC_RESPONSE_NONE</a> = 0U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggace71512915eb3049e3e7552f98db94c6ae3f5e48c73db2df1f853696a7706823d">CYHAL_SDHC_RESPONSE_LEN_136</a> = 1U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggace71512915eb3049e3e7552f98db94c6aa6ebcd52cc80521f8f48ddbccf31deaf">CYHAL_SDHC_RESPONSE_LEN_48</a> = 2U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#ggace71512915eb3049e3e7552f98db94c6a8d4401145983ee476ae2eff3de75a1a3">CYHAL_SDHC_RESPONSE_LEN_48B</a> = 3U
<br />
 }</td></tr>
<tr class="memdesc:gace71512915eb3049e3e7552f98db94c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDHC response types.  <a href="group__group__hal__sdhc.html#gace71512915eb3049e3e7552f98db94c6">More...</a><br /></td></tr>
<tr class="separator:gace71512915eb3049e3e7552f98db94c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13894ce8370fdb77b0c671f68d8582b5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga13894ce8370fdb77b0c671f68d8582b5">cyhal_sdhc_auto_cmd_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga13894ce8370fdb77b0c671f68d8582b5ad7e842622775bc21006065b8ea632608">CYHAL_SDHC_AUTO_CMD_NONE</a> = 0U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga13894ce8370fdb77b0c671f68d8582b5af7b957a3b349ad65ceb72b1c6f680fde">CYHAL_SDHC_AUTO_CMD_12</a> = 1U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga13894ce8370fdb77b0c671f68d8582b5abc8844e11d9625d183155d4acb1664ca">CYHAL_SDHC_AUTO_CMD_23</a> = 2U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga13894ce8370fdb77b0c671f68d8582b5ac13a07d3c99d967c0e6ed1380109c940">CYHAL_SDHC_AUTO_CMD_AUTO</a> = 3U
<br />
 }</td></tr>
<tr class="memdesc:ga13894ce8370fdb77b0c671f68d8582b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDHC auto command enable selection.  <a href="group__group__hal__sdhc.html#ga13894ce8370fdb77b0c671f68d8582b5">More...</a><br /></td></tr>
<tr class="separator:ga13894ce8370fdb77b0c671f68d8582b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga618579f234c8defbcfdb926567fdac53"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga618579f234c8defbcfdb926567fdac53">cyhal_sdhc_cmd_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga618579f234c8defbcfdb926567fdac53a36615e661801fe533af2b9cf50e75a24">CYHAL_SDHC_CMD_NORMAL</a> = 0U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga618579f234c8defbcfdb926567fdac53a9edcd2d96fcff621a64ff35fa94e4f5c">CYHAL_SDHC_CMD_SUSPEND</a> = 1U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga618579f234c8defbcfdb926567fdac53aac4de4e8b13f837037b583d9c48d4667">CYHAL_SDHC_CMD_RESUME</a> = 2U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga618579f234c8defbcfdb926567fdac53a5fccf029ce7fab7358f48a68ed282a03">CYHAL_SDHC_CMD_ABORT</a> = 3U
<br />
 }</td></tr>
<tr class="memdesc:ga618579f234c8defbcfdb926567fdac53"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDHC command types.  <a href="group__group__hal__sdhc.html#ga618579f234c8defbcfdb926567fdac53">More...</a><br /></td></tr>
<tr class="separator:ga618579f234c8defbcfdb926567fdac53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3068735fe5a653edd9685a426680718f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga3068735fe5a653edd9685a426680718f">cyhal_sdhc_error_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718faa96477f37a1ee53d18582a46b76d1f7c">CYHAL_SDHC_NO_ERR</a> = 0x0000U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa271c70503e2bf0873a64176c6ec8c3b1">CYHAL_SDHC_CMD_TOUT_ERR</a> = 0x0001U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa237628754613a4eeb3453cceeb1a0273">CYHAL_SDHC_CMD_CRC_ERR</a> = 0x0002U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718faf2e99e3da3bd9ba10657f1779f62fc05">CYHAL_SDHC_CMD_END_BIT_ERR</a> = 0x0004U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa787711273ba228a9d23aff252306a9c9">CYHAL_SDHC_CMD_IDX_ERR</a> = 0x0008U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa796b6781401eb24261f767f4d6884c52">CYHAL_SDHC_DATA_TOUT_ERR</a> = 0x0010U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fac8965b429acf3aaf03b49c8e2fed3517">CYHAL_SDHC_DATA_CRC_ERR</a> = 0x0020U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa7516f48c153ea4ed61cee8ca39406cfc">CYHAL_SDHC_DATA_END_BIT_ERR</a> = 0x0040U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fad53a96ca3a4e021e167086f02530ed2b">CYHAL_SDHC_CUR_LMT_ERR</a> = 0x0080U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa71327bee1ee79a2210c92c130335734c">CYHAL_SDHC_AUTO_CMD_ERR</a> = 0x0100U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa7b671e9257a366ae19f0837daf892569">CYHAL_SDHC_ADMA_ERR</a> = 0x0200U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fa21bfcd58db3c064562a61ddb40decf19">CYHAL_SDHC_TUNNING_ERR</a> = 0x0400U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718fabc9cfeaf9cbbdbd0076cc55c91dacac0">CYHAL_SDHC_RESP_ERR</a> = 0x0800U
, <br />
&#160;&#160;<a class="el" href="group__group__hal__sdhc.html#gga3068735fe5a653edd9685a426680718faa685467b4ff2fdcc9945db71a2d70a48">CYHAL_SDHC_BOOT_ACK_ERR</a> = 0x1000U
<br />
 }</td></tr>
<tr class="memdesc:ga3068735fe5a653edd9685a426680718f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDHC command error states.  <a href="group__group__hal__sdhc.html#ga3068735fe5a653edd9685a426680718f">More...</a><br /></td></tr>
<tr class="separator:ga3068735fe5a653edd9685a426680718f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gac1bb460226e93509ca7c0015e495d4e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">cyhal_sdhc_init_hw</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, const <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a> *config, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> cmd, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> clk, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data0, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data1, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data2, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data3, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data4, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data5, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data6, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data7, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> card_detect, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> io_volt_sel, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> card_pwr_en, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> card_mech_write_prot, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> led_ctrl, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> emmc_reset, <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__clock__t">cyhal_clock_t</a> *block_clk)</td></tr>
<tr class="memdesc:gac1bb460226e93509ca7c0015e495d4e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize SDHC driver and corresponding hardware.  <a href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">More...</a><br /></td></tr>
<tr class="separator:gac1bb460226e93509ca7c0015e495d4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1c042de1a92c5f2ecbdfa5bc989af209"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga1c042de1a92c5f2ecbdfa5bc989af209">cyhal_sdhc_init_card</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga1c042de1a92c5f2ecbdfa5bc989af209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the connected card.  <a href="group__group__hal__sdhc.html#ga1c042de1a92c5f2ecbdfa5bc989af209">More...</a><br /></td></tr>
<tr class="separator:ga1c042de1a92c5f2ecbdfa5bc989af209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabb5aded07e0cf80c36ec8ac0d6a5532a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gabb5aded07e0cf80c36ec8ac0d6a5532a">cyhal_sdhc_init</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, const <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a> *config, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> cmd, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> clk, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data0, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data1, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data2, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data3, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data4, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data5, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data6, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> data7, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> card_detect, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> io_volt_sel, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> card_pwr_en, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> card_mech_write_prot, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> led_ctrl, <a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a> emmc_reset, <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__clock__t">cyhal_clock_t</a> *block_clk)</td></tr>
<tr class="memdesc:gabb5aded07e0cf80c36ec8ac0d6a5532a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the SDHC block and connected card.  <a href="group__group__hal__sdhc.html#gabb5aded07e0cf80c36ec8ac0d6a5532a">More...</a><br /></td></tr>
<tr class="separator:gabb5aded07e0cf80c36ec8ac0d6a5532a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3fb2c77d8662f53a21996298cb4581b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga3fb2c77d8662f53a21996298cb4581b1">cyhal_sdhc_free</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga3fb2c77d8662f53a21996298cb4581b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release the SDHC peripheral, not currently invoked.  <a href="group__group__hal__sdhc.html#ga3fb2c77d8662f53a21996298cb4581b1">More...</a><br /></td></tr>
<tr class="separator:ga3fb2c77d8662f53a21996298cb4581b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2f3442c949be8d599eaefb78cea881a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga2f3442c949be8d599eaefb78cea881a9">cyhal_sdhc_read</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t address, uint8_t *data, size_t *length)</td></tr>
<tr class="memdesc:ga2f3442c949be8d599eaefb78cea881a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to read data synchronously over the SDHC peripheral.  <a href="group__group__hal__sdhc.html#ga2f3442c949be8d599eaefb78cea881a9">More...</a><br /></td></tr>
<tr class="separator:ga2f3442c949be8d599eaefb78cea881a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5767503dcb047409777306b78ad5355"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gaa5767503dcb047409777306b78ad5355">cyhal_sdhc_write</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t address, const uint8_t *data, size_t *length)</td></tr>
<tr class="memdesc:gaa5767503dcb047409777306b78ad5355"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to write data synchronously over SDHC peripheral.  <a href="group__group__hal__sdhc.html#gaa5767503dcb047409777306b78ad5355">More...</a><br /></td></tr>
<tr class="separator:gaa5767503dcb047409777306b78ad5355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1688e1f36e48f09a6bfc5a37675584d3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga1688e1f36e48f09a6bfc5a37675584d3">cyhal_sdhc_erase</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t start_addr, size_t length, uint32_t timeout_ms)</td></tr>
<tr class="memdesc:ga1688e1f36e48f09a6bfc5a37675584d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases a block of data over the SDHC peripheral.  <a href="group__group__hal__sdhc.html#ga1688e1f36e48f09a6bfc5a37675584d3">More...</a><br /></td></tr>
<tr class="separator:ga1688e1f36e48f09a6bfc5a37675584d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c98ada7e14dee0c45efe925ff72a07c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga5c98ada7e14dee0c45efe925ff72a07c">cyhal_sdhc_read_async</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t address, uint8_t *data, size_t *length)</td></tr>
<tr class="memdesc:ga5c98ada7e14dee0c45efe925ff72a07c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start SDHC asynchronous read.  <a href="group__group__hal__sdhc.html#ga5c98ada7e14dee0c45efe925ff72a07c">More...</a><br /></td></tr>
<tr class="separator:ga5c98ada7e14dee0c45efe925ff72a07c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3daf1bc8096d375ced9003f63efc18aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga3daf1bc8096d375ced9003f63efc18aa">cyhal_sdhc_write_async</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t address, const uint8_t *data, size_t *length)</td></tr>
<tr class="memdesc:ga3daf1bc8096d375ced9003f63efc18aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start asynchronous SDHC write.  <a href="group__group__hal__sdhc.html#ga3daf1bc8096d375ced9003f63efc18aa">More...</a><br /></td></tr>
<tr class="separator:ga3daf1bc8096d375ced9003f63efc18aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad28a8b2178173ce3ee981453ed3ce12c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gad28a8b2178173ce3ee981453ed3ce12c">cyhal_sdhc_is_busy</a> (const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:gad28a8b2178173ce3ee981453ed3ce12c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the specified SDHC peripheral is in use.  <a href="group__group__hal__sdhc.html#gad28a8b2178173ce3ee981453ed3ce12c">More...</a><br /></td></tr>
<tr class="separator:gad28a8b2178173ce3ee981453ed3ce12c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga96cb1dc3bbdd8ac61b5303ee3795f713"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga96cb1dc3bbdd8ac61b5303ee3795f713">cyhal_sdhc_abort_async</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga96cb1dc3bbdd8ac61b5303ee3795f713"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abort an SDHC transfer.  <a href="group__group__hal__sdhc.html#ga96cb1dc3bbdd8ac61b5303ee3795f713">More...</a><br /></td></tr>
<tr class="separator:ga96cb1dc3bbdd8ac61b5303ee3795f713"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1fe53d842050280b8827e9a41545f461"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga1fe53d842050280b8827e9a41545f461">cyhal_sdhc_register_callback</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, <a class="el" href="group__group__hal__sdhc.html#gaded71f4751306e4983c1e8315c569fa1">cyhal_sdhc_event_callback_t</a> callback, void *callback_arg)</td></tr>
<tr class="memdesc:ga1fe53d842050280b8827e9a41545f461"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register an SDHC callback handler.  <a href="group__group__hal__sdhc.html#ga1fe53d842050280b8827e9a41545f461">More...</a><br /></td></tr>
<tr class="separator:ga1fe53d842050280b8827e9a41545f461"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a0865321bd9284606655f9fb9402339"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga3a0865321bd9284606655f9fb9402339">cyhal_sdhc_enable_event</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, <a class="el" href="group__group__hal__sdhc.html#gab58a2ffca59383a72cf8bc49d74cf17b">cyhal_sdhc_event_t</a> event, uint8_t intr_priority, bool enable)</td></tr>
<tr class="memdesc:ga3a0865321bd9284606655f9fb9402339"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure SDHC event enablement.  <a href="group__group__hal__sdhc.html#ga3a0865321bd9284606655f9fb9402339">More...</a><br /></td></tr>
<tr class="separator:ga3a0865321bd9284606655f9fb9402339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga616760d8368e5253716bf8bb5aaec2d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga616760d8368e5253716bf8bb5aaec2d9">cyhal_sdhc_is_card_inserted</a> (const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga616760d8368e5253716bf8bb5aaec2d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if SD card is inserted.  <a href="group__group__hal__sdhc.html#ga616760d8368e5253716bf8bb5aaec2d9">More...</a><br /></td></tr>
<tr class="separator:ga616760d8368e5253716bf8bb5aaec2d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga93db8de844c759af35280a968551215c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga93db8de844c759af35280a968551215c">cyhal_sdhc_is_card_mech_write_protected</a> (const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga93db8de844c759af35280a968551215c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the inserted SD card is mechanically write protected.  <a href="group__group__hal__sdhc.html#ga93db8de844c759af35280a968551215c">More...</a><br /></td></tr>
<tr class="separator:ga93db8de844c759af35280a968551215c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3f055dca9939fa3d20e4846f8348a856"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga3f055dca9939fa3d20e4846f8348a856">cyhal_sdhc_get_block_count</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t *block_count)</td></tr>
<tr class="memdesc:ga3f055dca9939fa3d20e4846f8348a856"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get block count of inserted SD card / eMMC.  <a href="group__group__hal__sdhc.html#ga3f055dca9939fa3d20e4846f8348a856">More...</a><br /></td></tr>
<tr class="separator:ga3f055dca9939fa3d20e4846f8348a856"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga61cd4c3f5f243e1dfc44ad91f2056d60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga61cd4c3f5f243e1dfc44ad91f2056d60">cyhal_sdhc_set_frequency</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t hz, bool negotiate)</td></tr>
<tr class="memdesc:ga61cd4c3f5f243e1dfc44ad91f2056d60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the SD bus frequency (frequency on which SD card / eMMC is accessed)  <a href="group__group__hal__sdhc.html#ga61cd4c3f5f243e1dfc44ad91f2056d60">More...</a><br /></td></tr>
<tr class="separator:ga61cd4c3f5f243e1dfc44ad91f2056d60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga38e75dc7fda0b2eaef8a064566cba6ca"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga38e75dc7fda0b2eaef8a064566cba6ca">cyhal_sdhc_get_frequency</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga38e75dc7fda0b2eaef8a064566cba6ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the actual frequency that SD bus is configured for.  <a href="group__group__hal__sdhc.html#ga38e75dc7fda0b2eaef8a064566cba6ca">More...</a><br /></td></tr>
<tr class="separator:ga38e75dc7fda0b2eaef8a064566cba6ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga016c5b6b472837548527230c9a98edff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga016c5b6b472837548527230c9a98edff">cyhal_sdhc_set_data_read_timeout</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t timeout, bool auto_reconfigure)</td></tr>
<tr class="memdesc:ga016c5b6b472837548527230c9a98edff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the maximum time to wait for data from the card.  <a href="group__group__hal__sdhc.html#ga016c5b6b472837548527230c9a98edff">More...</a><br /></td></tr>
<tr class="separator:ga016c5b6b472837548527230c9a98edff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga60d64dc06c541217ebe7f36dc6498ace"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga60d64dc06c541217ebe7f36dc6498ace">cyhal_sdhc_config_data_transfer</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__data__config__t">cyhal_sdhc_data_config_t</a> *data_config)</td></tr>
<tr class="memdesc:ga60d64dc06c541217ebe7f36dc6498ace"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SD block and DMA for a data transfer.  <a href="group__group__hal__sdhc.html#ga60d64dc06c541217ebe7f36dc6498ace">More...</a><br /></td></tr>
<tr class="separator:ga60d64dc06c541217ebe7f36dc6498ace"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb5534f9654bbd459481936c5abe40ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gafb5534f9654bbd459481936c5abe40ad">cyhal_sdhc_send_cmd</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__cmd__config__t">cyhal_sdhc_cmd_config_t</a> *cmd_config)</td></tr>
<tr class="memdesc:gafb5534f9654bbd459481936c5abe40ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a command to the card and wait until it is sent.  <a href="group__group__hal__sdhc.html#gafb5534f9654bbd459481936c5abe40ad">More...</a><br /></td></tr>
<tr class="separator:gafb5534f9654bbd459481936c5abe40ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9bff4cfd487a33cd6dd62d49e7d2969"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gad9bff4cfd487a33cd6dd62d49e7d2969">cyhal_sdhc_get_response</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint32_t *response, bool large_response)</td></tr>
<tr class="memdesc:gad9bff4cfd487a33cd6dd62d49e7d2969"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a response of last issued by <a class="el" href="group__group__hal__sdhc.html#gafb5534f9654bbd459481936c5abe40ad">cyhal_sdhc_send_cmd</a> function command.  <a href="group__group__hal__sdhc.html#gad9bff4cfd487a33cd6dd62d49e7d2969">More...</a><br /></td></tr>
<tr class="separator:gad9bff4cfd487a33cd6dd62d49e7d2969"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga670468d4cd69e7b65225faa35996575c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga670468d4cd69e7b65225faa35996575c">cyhal_sdhc_wait_transfer_complete</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga670468d4cd69e7b65225faa35996575c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for asynchronous data transfer to complete.  <a href="group__group__hal__sdhc.html#ga670468d4cd69e7b65225faa35996575c">More...</a><br /></td></tr>
<tr class="separator:ga670468d4cd69e7b65225faa35996575c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae6612fc9362124a783f8b47add69dde4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gae6612fc9362124a783f8b47add69dde4">cyhal_sdhc_set_io_voltage</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, <a class="el" href="group__group__hal__sdhc.html#ga11968d8b79af97a6a319fa709d84861e">cyhal_sdhc_io_voltage_t</a> io_voltage, <a class="el" href="group__group__hal__sdhc.html#ga5e3877ab007a39419bdefc0abae2713d">cyhal_sdhc_io_volt_action_type_t</a> io_switch_type)</td></tr>
<tr class="memdesc:gae6612fc9362124a783f8b47add69dde4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the voltage level of the I/O lines.  <a href="group__group__hal__sdhc.html#gae6612fc9362124a783f8b47add69dde4">More...</a><br /></td></tr>
<tr class="separator:gae6612fc9362124a783f8b47add69dde4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae07049e08e19fe729d8a5705ea3765c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__hal__sdhc.html#ga11968d8b79af97a6a319fa709d84861e">cyhal_sdhc_io_voltage_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gae07049e08e19fe729d8a5705ea3765c0">cyhal_sdhc_get_io_voltage</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:gae07049e08e19fe729d8a5705ea3765c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current voltage level of the I/O lines.  <a href="group__group__hal__sdhc.html#gae07049e08e19fe729d8a5705ea3765c0">More...</a><br /></td></tr>
<tr class="separator:gae07049e08e19fe729d8a5705ea3765c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53fbe8b3e43ff23270c6fe09c5eceea7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga53fbe8b3e43ff23270c6fe09c5eceea7">cyhal_sdhc_set_bus_width</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, uint8_t bus_width, bool configure_card)</td></tr>
<tr class="memdesc:ga53fbe8b3e43ff23270c6fe09c5eceea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configures data bus width on host side and (optionally) informs the card about new width configuration.  <a href="group__group__hal__sdhc.html#ga53fbe8b3e43ff23270c6fe09c5eceea7">More...</a><br /></td></tr>
<tr class="separator:ga53fbe8b3e43ff23270c6fe09c5eceea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf8864c53c6bcb103a95040874af92102"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gaf8864c53c6bcb103a95040874af92102">cyhal_sdhc_get_bus_width</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:gaf8864c53c6bcb103a95040874af92102"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns currently configured data bus width.  <a href="group__group__hal__sdhc.html#gaf8864c53c6bcb103a95040874af92102">More...</a><br /></td></tr>
<tr class="separator:gaf8864c53c6bcb103a95040874af92102"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga833da009de635170a856779d34f6a1e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__hal__sdhc.html#ga3068735fe5a653edd9685a426680718f">cyhal_sdhc_error_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga833da009de635170a856779d34f6a1e5">cyhal_sdhc_get_last_command_errors</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga833da009de635170a856779d34f6a1e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns last issued SD operation error states.  <a href="group__group__hal__sdhc.html#ga833da009de635170a856779d34f6a1e5">More...</a><br /></td></tr>
<tr class="separator:ga833da009de635170a856779d34f6a1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaee5b8314adf44cb3f10cdac88537e98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gaaee5b8314adf44cb3f10cdac88537e98">cyhal_sdhc_clear_errors</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:gaaee5b8314adf44cb3f10cdac88537e98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears SDHC hardware error states.  <a href="group__group__hal__sdhc.html#gaaee5b8314adf44cb3f10cdac88537e98">More...</a><br /></td></tr>
<tr class="separator:gaaee5b8314adf44cb3f10cdac88537e98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga88369bc8abc3567def254b6ca65291be"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga88369bc8abc3567def254b6ca65291be">cyhal_sdhc_software_reset</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj)</td></tr>
<tr class="memdesc:ga88369bc8abc3567def254b6ca65291be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets CMD and Data lines and corresponding circuits of SD Host.  <a href="group__group__hal__sdhc.html#ga88369bc8abc3567def254b6ca65291be">More...</a><br /></td></tr>
<tr class="separator:ga88369bc8abc3567def254b6ca65291be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf3fd9221a57b5667adc97b31ad71fdd5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#gaf3fd9221a57b5667adc97b31ad71fdd5">cyhal_sdhc_enable_card_power</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, bool enable)</td></tr>
<tr class="memdesc:gaf3fd9221a57b5667adc97b31ad71fdd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Powers up / down the card based on provided parameter.  <a href="group__group__hal__sdhc.html#gaf3fd9221a57b5667adc97b31ad71fdd5">More...</a><br /></td></tr>
<tr class="separator:gaf3fd9221a57b5667adc97b31ad71fdd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga64586e3ef99e7207043ab1f5b31d43fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__hal__sdhc.html#ga64586e3ef99e7207043ab1f5b31d43fc">cyhal_sdhc_init_cfg</a> (<a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *obj, const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__configurator__t">cyhal_sdhc_configurator_t</a> *cfg)</td></tr>
<tr class="memdesc:ga64586e3ef99e7207043ab1f5b31d43fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the SDHC peripheral using a configurator generated configuration struct.  <a href="group__group__hal__sdhc.html#ga64586e3ef99e7207043ab1f5b31d43fc">More...</a><br /></td></tr>
<tr class="separator:ga64586e3ef99e7207043ab1f5b31d43fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structcyhal__sdhc__config__t" id="structcyhal__sdhc__config__t"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structcyhal__sdhc__config__t">&#9670;&nbsp;</a></span>cyhal_sdhc_config_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct cyhal_sdhc_config_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a9a0d3720e7b0898f436fd51dc3f65ab2" name="a9a0d3720e7b0898f436fd51dc3f65ab2"></a>bool</td>
<td class="fieldname">
enableLedControl</td>
<td class="fielddoc">
Drive one IO to indicate when the card is being accessed. </td></tr>
<tr><td class="fieldtype">
<a id="a34288a41b330982ab1a584953922d8f3" name="a34288a41b330982ab1a584953922d8f3"></a>bool</td>
<td class="fieldname">
lowVoltageSignaling</td>
<td class="fielddoc">
Whether 1.8V signaling is supported. </td></tr>
<tr><td class="fieldtype">
<a id="a91ccb95e1df1b03b3786644e953c005d" name="a91ccb95e1df1b03b3786644e953c005d"></a>bool</td>
<td class="fieldname">
isEmmc</td>
<td class="fielddoc">
true if eMMC card, otherwise false </td></tr>
<tr><td class="fieldtype">
<a id="aab3e73af9b4102da9a5c53e535bd2a83" name="aab3e73af9b4102da9a5c53e535bd2a83"></a>uint8_t</td>
<td class="fieldname">
busWidth</td>
<td class="fielddoc">
The desired bus width, 1-bit, 4-bit, 8-bit. </td></tr>
</table>

</div>
</div>
<a name="structcyhal__sdhc__data__config__t" id="structcyhal__sdhc__data__config__t"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structcyhal__sdhc__data__config__t">&#9670;&nbsp;</a></span>cyhal_sdhc_data_config_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct cyhal_sdhc_data_config_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a198253d7fd6bdb4bf70c642d77c05bf1" name="a198253d7fd6bdb4bf70c642d77c05bf1"></a>uint32_t *</td>
<td class="fieldname">
data_ptr</td>
<td class="fielddoc">
The pointer to data for send/receive. Data will be transfered using DMA, which will be configured automaticaly by SDHC HAL driver. </td></tr>
<tr><td class="fieldtype">
<a id="a0e76ea9197d0a8dfe013fdf7a5bf84f5" name="a0e76ea9197d0a8dfe013fdf7a5bf84f5"></a>uint32_t</td>
<td class="fieldname">
block_size</td>
<td class="fielddoc">
The size of the data block. </td></tr>
<tr><td class="fieldtype">
<a id="ab97ff73c5cc53db36aa92ffb84ba35de" name="ab97ff73c5cc53db36aa92ffb84ba35de"></a>uint32_t</td>
<td class="fieldname">
number_of_blocks</td>
<td class="fielddoc">
The number of blocks with size block_size to send. </td></tr>
<tr><td class="fieldtype">
<a id="a2822a66fa6410eceba81604567e11c82" name="a2822a66fa6410eceba81604567e11c82"></a><a class="el" href="group__group__hal__sdhc.html#ga13894ce8370fdb77b0c671f68d8582b5">cyhal_sdhc_auto_cmd_t</a></td>
<td class="fieldname">
auto_command</td>
<td class="fielddoc">
Selects which auto commands are used if any. </td></tr>
<tr><td class="fieldtype">
<a id="a3e7011f4e15e4f21b7688112593860b7" name="a3e7011f4e15e4f21b7688112593860b7"></a>bool</td>
<td class="fieldname">
is_read</td>
<td class="fielddoc">
true = Read from the card, false = Write to the card. </td></tr>
</table>

</div>
</div>
<a name="structcyhal__sdhc__cmd__config__t" id="structcyhal__sdhc__cmd__config__t"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structcyhal__sdhc__cmd__config__t">&#9670;&nbsp;</a></span>cyhal_sdhc_cmd_config_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct cyhal_sdhc_cmd_config_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a9ee2bda5fbcf52d015c007c201d77600" name="a9ee2bda5fbcf52d015c007c201d77600"></a>uint32_t</td>
<td class="fieldname">
command_index</td>
<td class="fielddoc">
The index of the command. </td></tr>
<tr><td class="fieldtype">
<a id="a6ec506e9315f9624d8040cf7b0d41e51" name="a6ec506e9315f9624d8040cf7b0d41e51"></a>uint32_t</td>
<td class="fieldname">
command_argument</td>
<td class="fielddoc">
The argument for the command. </td></tr>
<tr><td class="fieldtype">
<a id="a53d4b0e0ce161544068ca72c7a64ac64" name="a53d4b0e0ce161544068ca72c7a64ac64"></a>bool</td>
<td class="fieldname">
enable_crc_check</td>
<td class="fielddoc">
Enables the CRC check on the response. </td></tr>
<tr><td class="fieldtype">
<a id="ad9cb1a8070e3a07af83f8a173926d556" name="ad9cb1a8070e3a07af83f8a173926d556"></a><a class="el" href="group__group__hal__sdhc.html#gace71512915eb3049e3e7552f98db94c6">cyhal_sdhc_cmd_response_type_t</a></td>
<td class="fieldname">
response_type</td>
<td class="fielddoc">
The response type. </td></tr>
<tr><td class="fieldtype">
<a id="a6b0757bad40941cb717e9152fbf35084" name="a6b0757bad40941cb717e9152fbf35084"></a>bool</td>
<td class="fieldname">
enable_idx_check</td>
<td class="fielddoc">
Checks the index of the response. </td></tr>
<tr><td class="fieldtype">
<a id="abaab066571dc422286bad033eed84c01" name="abaab066571dc422286bad033eed84c01"></a><a class="el" href="group__group__hal__sdhc.html#ga618579f234c8defbcfdb926567fdac53">cyhal_sdhc_cmd_type_t</a></td>
<td class="fieldname">
command_type</td>
<td class="fielddoc">
The command type. </td></tr>
<tr><td class="fieldtype">
<a id="a54717ed5ce1dcf41110f0e3964782c6d" name="a54717ed5ce1dcf41110f0e3964782c6d"></a><a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__data__config__t">cyhal_sdhc_data_config_t</a> *</td>
<td class="fieldname">
data_config</td>
<td class="fielddoc">
Data transfer configuration, defined in <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__data__config__t">cyhal_sdhc_data_config_t</a>. Should be NULL if data transfer is not expected for provided command. </td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga612f43553069268d48d7ce0bee45722a" name="ga612f43553069268d48d7ce0bee45722a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga612f43553069268d48d7ce0bee45722a">&#9670;&nbsp;</a></span>cyhal_sdhc_card_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#ga612f43553069268d48d7ce0bee45722a">cyhal_sdhc_card_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Card types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga612f43553069268d48d7ce0bee45722aa38bcb59920941b83f0c06332df4cfc56" name="gga612f43553069268d48d7ce0bee45722aa38bcb59920941b83f0c06332df4cfc56"></a>CYHAL_SDHC_SD&#160;</td><td class="fielddoc"><p >Secure Digital card. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga612f43553069268d48d7ce0bee45722aac83d0855095c3088049b98df879f5b81" name="gga612f43553069268d48d7ce0bee45722aac83d0855095c3088049b98df879f5b81"></a>CYHAL_SDHC_SDIO&#160;</td><td class="fielddoc"><p >SD Input Output card. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga612f43553069268d48d7ce0bee45722aa8c0d3085eecb94c70be970fd616ad478" name="gga612f43553069268d48d7ce0bee45722aa8c0d3085eecb94c70be970fd616ad478"></a>CYHAL_SDHC_EMMC&#160;</td><td class="fielddoc"><p >Embedded Multimedia card. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga612f43553069268d48d7ce0bee45722aa0634c94b291436bcd2ff7810df539610" name="gga612f43553069268d48d7ce0bee45722aa0634c94b291436bcd2ff7810df539610"></a>CYHAL_SDHC_COMBO&#160;</td><td class="fielddoc"><p >Combo Card (SD + SDIO) </p>
</td></tr>
<tr><td class="fieldname"><a id="gga612f43553069268d48d7ce0bee45722aa824d9d7d02b24e15f4310f1697477a9f" name="gga612f43553069268d48d7ce0bee45722aa824d9d7d02b24e15f4310f1697477a9f"></a>CYHAL_SDHC_UNUSABLE&#160;</td><td class="fielddoc"><p >Unusable card or unsupported type. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga612f43553069268d48d7ce0bee45722aa2e07f8e30e45059fee59fcf4e341a925" name="gga612f43553069268d48d7ce0bee45722aa2e07f8e30e45059fee59fcf4e341a925"></a>CYHAL_SDHC_NOT_EMMC&#160;</td><td class="fielddoc"><p >Not an eMMC card. </p>
</td></tr>
</table>

</div>
</div>
<a id="gab58a2ffca59383a72cf8bc49d74cf17b" name="gab58a2ffca59383a72cf8bc49d74cf17b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab58a2ffca59383a72cf8bc49d74cf17b">&#9670;&nbsp;</a></span>cyhal_sdhc_event_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#gab58a2ffca59383a72cf8bc49d74cf17b">cyhal_sdhc_event_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDHC interrupt triggers. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba11e93e28cdb3730b5f8c6bb5f29cb7d5" name="ggab58a2ffca59383a72cf8bc49d74cf17ba11e93e28cdb3730b5f8c6bb5f29cb7d5"></a>CYHAL_SDHC_CMD_COMPLETE&#160;</td><td class="fielddoc"><p >Command Complete. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17bad08d507a635f8269ba7649643339f213" name="ggab58a2ffca59383a72cf8bc49d74cf17bad08d507a635f8269ba7649643339f213"></a>CYHAL_SDHC_XFER_COMPLETE&#160;</td><td class="fielddoc"><p >Host read/write transfer is complete. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba7cc7318fbda0daa6154e29752dead031" name="ggab58a2ffca59383a72cf8bc49d74cf17ba7cc7318fbda0daa6154e29752dead031"></a>CYHAL_SDHC_BGAP_EVENT&#160;</td><td class="fielddoc"><p >This bit is set when both read/write transaction is stopped at the block gap. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba80af4d0d45768f30bb1e7e20580eccb5" name="ggab58a2ffca59383a72cf8bc49d74cf17ba80af4d0d45768f30bb1e7e20580eccb5"></a>CYHAL_SDHC_DMA_INTERRUPT&#160;</td><td class="fielddoc"><p >Host controller detects an SDMA Buffer Boundary during transfer. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba41feae89fc60f05dc290968dea4a382b" name="ggab58a2ffca59383a72cf8bc49d74cf17ba41feae89fc60f05dc290968dea4a382b"></a>CYHAL_SDHC_BUF_WR_READY&#160;</td><td class="fielddoc"><p >This bit is set if the Buffer Write Enable changes from 0 to 1. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba3844ed703bfd516cd920d251a2d60b89" name="ggab58a2ffca59383a72cf8bc49d74cf17ba3844ed703bfd516cd920d251a2d60b89"></a>CYHAL_SDHC_BUF_RD_READY&#160;</td><td class="fielddoc"><p >This bit is set if the Buffer Read Enable changes from 0 to 1. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba2cd1dd430b29e174da66c8d08cbaca17" name="ggab58a2ffca59383a72cf8bc49d74cf17ba2cd1dd430b29e174da66c8d08cbaca17"></a>CYHAL_SDHC_CARD_INSERTION&#160;</td><td class="fielddoc"><p >This bit is set if the Card Inserted in the Present State register changes from 0 to 1. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba43775fcc705ff58f61b111825bdb34f2" name="ggab58a2ffca59383a72cf8bc49d74cf17ba43775fcc705ff58f61b111825bdb34f2"></a>CYHAL_SDHC_CARD_REMOVAL&#160;</td><td class="fielddoc"><p >This bit is set if the Card Inserted in the Present State register changes from 1 to 0. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17bac79ac0f3bae5a083079c478099b6f6fc" name="ggab58a2ffca59383a72cf8bc49d74cf17bac79ac0f3bae5a083079c478099b6f6fc"></a>CYHAL_SDHC_RE_TUNE_EVENT&#160;</td><td class="fielddoc"><p >This bit is set if the Re-Tuning Request changes from 0 to 1. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17bac5d8eae9a3ca751227264f692a4f9ebd" name="ggab58a2ffca59383a72cf8bc49d74cf17bac5d8eae9a3ca751227264f692a4f9ebd"></a>CYHAL_SDHC_FX_EVENT&#160;</td><td class="fielddoc"><p >This status is set when R[14] of response register is set to 1. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17bab1f59c81773e6e2083623bee85dd9c9b" name="ggab58a2ffca59383a72cf8bc49d74cf17bab1f59c81773e6e2083623bee85dd9c9b"></a>CYHAL_SDHC_CQE_EVENT&#160;</td><td class="fielddoc"><p >This status is set if Command Queuing/Crypto event has occurred. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17bae5a8f7697409d7c683405808581a9a57" name="ggab58a2ffca59383a72cf8bc49d74cf17bae5a8f7697409d7c683405808581a9a57"></a>CYHAL_SDHC_ERR_INTERRUPT&#160;</td><td class="fielddoc"><p >If any of the bits in the Error Interrupt Status register are set. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggab58a2ffca59383a72cf8bc49d74cf17ba3be10ae218d0d48ef63f98a9238fac46" name="ggab58a2ffca59383a72cf8bc49d74cf17ba3be10ae218d0d48ef63f98a9238fac46"></a>CYHAL_SDHC_ALL_INTERRUPTS&#160;</td><td class="fielddoc"><p >Is used to enable/disable all interrupts. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga11968d8b79af97a6a319fa709d84861e" name="ga11968d8b79af97a6a319fa709d84861e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga11968d8b79af97a6a319fa709d84861e">&#9670;&nbsp;</a></span>cyhal_sdhc_io_voltage_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#ga11968d8b79af97a6a319fa709d84861e">cyhal_sdhc_io_voltage_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>I/O voltage levels. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga11968d8b79af97a6a319fa709d84861ea73c0e6ae5ad1181266b9228447065006" name="gga11968d8b79af97a6a319fa709d84861ea73c0e6ae5ad1181266b9228447065006"></a>CYHAL_SDHC_IO_VOLTAGE_3_3V&#160;</td><td class="fielddoc"><p >I/O voltage is 3.3V. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga11968d8b79af97a6a319fa709d84861eac68fd890d8ac8bcbf19bf07dd59a50ab" name="gga11968d8b79af97a6a319fa709d84861eac68fd890d8ac8bcbf19bf07dd59a50ab"></a>CYHAL_SDHC_IO_VOLTAGE_1_8V&#160;</td><td class="fielddoc"><p >I/O voltage is 1.8V. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga5e3877ab007a39419bdefc0abae2713d" name="ga5e3877ab007a39419bdefc0abae2713d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5e3877ab007a39419bdefc0abae2713d">&#9670;&nbsp;</a></span>cyhal_sdhc_io_volt_action_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#ga5e3877ab007a39419bdefc0abae2713d">cyhal_sdhc_io_volt_action_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDHC I/O voltage select principle. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga5e3877ab007a39419bdefc0abae2713dad0ce65c933019daf09508992c47fd22e" name="gga5e3877ab007a39419bdefc0abae2713dad0ce65c933019daf09508992c47fd22e"></a>CYHAL_SDHC_IO_VOLT_ACTION_NEGOTIATE&#160;</td><td class="fielddoc"><p >(Recommended) HAL driver performs all steps, needed for switching I/O bus voltage to certain level: sends needed commands to prepare card, changes level of io_volt_sel pin and performs switching sequence according to SD specification. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga5e3877ab007a39419bdefc0abae2713dadc0de97a76aca9884a9a13e8efeb0477" name="gga5e3877ab007a39419bdefc0abae2713dadc0de97a76aca9884a9a13e8efeb0477"></a>CYHAL_SDHC_IO_VOLT_ACTION_SWITCH_SEQ_ONLY&#160;</td><td class="fielddoc"><p >HAL driver performs switching sequence (if voltage is being switched to 1.8V) and changes io_volt_sel pin level accordingly. No commands are being send to the card in this mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga5e3877ab007a39419bdefc0abae2713da3463e1d05c9ee096b7a34485102a216c" name="gga5e3877ab007a39419bdefc0abae2713da3463e1d05c9ee096b7a34485102a216c"></a>CYHAL_SDHC_IO_VOLT_ACTION_NONE&#160;</td><td class="fielddoc"><p >I/O voltage is changed by changing io_volt_sel pin's level. No commands are being send to the card in this mode. </p>
</td></tr>
</table>

</div>
</div>
<a id="gace71512915eb3049e3e7552f98db94c6" name="gace71512915eb3049e3e7552f98db94c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gace71512915eb3049e3e7552f98db94c6">&#9670;&nbsp;</a></span>cyhal_sdhc_cmd_response_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#gace71512915eb3049e3e7552f98db94c6">cyhal_sdhc_cmd_response_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDHC response types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggace71512915eb3049e3e7552f98db94c6a05d0960fc0a1479992bd79a2b64d3dca" name="ggace71512915eb3049e3e7552f98db94c6a05d0960fc0a1479992bd79a2b64d3dca"></a>CYHAL_SDHC_RESPONSE_NONE&#160;</td><td class="fielddoc"><p >No Response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggace71512915eb3049e3e7552f98db94c6ae3f5e48c73db2df1f853696a7706823d" name="ggace71512915eb3049e3e7552f98db94c6ae3f5e48c73db2df1f853696a7706823d"></a>CYHAL_SDHC_RESPONSE_LEN_136&#160;</td><td class="fielddoc"><p >Response Length 136. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggace71512915eb3049e3e7552f98db94c6aa6ebcd52cc80521f8f48ddbccf31deaf" name="ggace71512915eb3049e3e7552f98db94c6aa6ebcd52cc80521f8f48ddbccf31deaf"></a>CYHAL_SDHC_RESPONSE_LEN_48&#160;</td><td class="fielddoc"><p >Response Length 48. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggace71512915eb3049e3e7552f98db94c6a8d4401145983ee476ae2eff3de75a1a3" name="ggace71512915eb3049e3e7552f98db94c6a8d4401145983ee476ae2eff3de75a1a3"></a>CYHAL_SDHC_RESPONSE_LEN_48B&#160;</td><td class="fielddoc"><p >Response Length 48. Check Busy after response. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga13894ce8370fdb77b0c671f68d8582b5" name="ga13894ce8370fdb77b0c671f68d8582b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13894ce8370fdb77b0c671f68d8582b5">&#9670;&nbsp;</a></span>cyhal_sdhc_auto_cmd_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#ga13894ce8370fdb77b0c671f68d8582b5">cyhal_sdhc_auto_cmd_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDHC auto command enable selection. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga13894ce8370fdb77b0c671f68d8582b5ad7e842622775bc21006065b8ea632608" name="gga13894ce8370fdb77b0c671f68d8582b5ad7e842622775bc21006065b8ea632608"></a>CYHAL_SDHC_AUTO_CMD_NONE&#160;</td><td class="fielddoc"><p >Auto command disable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga13894ce8370fdb77b0c671f68d8582b5af7b957a3b349ad65ceb72b1c6f680fde" name="gga13894ce8370fdb77b0c671f68d8582b5af7b957a3b349ad65ceb72b1c6f680fde"></a>CYHAL_SDHC_AUTO_CMD_12&#160;</td><td class="fielddoc"><p >Auto command 12 enable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga13894ce8370fdb77b0c671f68d8582b5abc8844e11d9625d183155d4acb1664ca" name="gga13894ce8370fdb77b0c671f68d8582b5abc8844e11d9625d183155d4acb1664ca"></a>CYHAL_SDHC_AUTO_CMD_23&#160;</td><td class="fielddoc"><p >Auto command 23 enable. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga13894ce8370fdb77b0c671f68d8582b5ac13a07d3c99d967c0e6ed1380109c940" name="gga13894ce8370fdb77b0c671f68d8582b5ac13a07d3c99d967c0e6ed1380109c940"></a>CYHAL_SDHC_AUTO_CMD_AUTO&#160;</td><td class="fielddoc"><p >Auto command Auto enable. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga618579f234c8defbcfdb926567fdac53" name="ga618579f234c8defbcfdb926567fdac53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga618579f234c8defbcfdb926567fdac53">&#9670;&nbsp;</a></span>cyhal_sdhc_cmd_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#ga618579f234c8defbcfdb926567fdac53">cyhal_sdhc_cmd_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDHC command types. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga618579f234c8defbcfdb926567fdac53a36615e661801fe533af2b9cf50e75a24" name="gga618579f234c8defbcfdb926567fdac53a36615e661801fe533af2b9cf50e75a24"></a>CYHAL_SDHC_CMD_NORMAL&#160;</td><td class="fielddoc"><p >Other commands. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga618579f234c8defbcfdb926567fdac53a9edcd2d96fcff621a64ff35fa94e4f5c" name="gga618579f234c8defbcfdb926567fdac53a9edcd2d96fcff621a64ff35fa94e4f5c"></a>CYHAL_SDHC_CMD_SUSPEND&#160;</td><td class="fielddoc"><p >CMD52 for writing "Bus Suspend" in CCCR. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga618579f234c8defbcfdb926567fdac53aac4de4e8b13f837037b583d9c48d4667" name="gga618579f234c8defbcfdb926567fdac53aac4de4e8b13f837037b583d9c48d4667"></a>CYHAL_SDHC_CMD_RESUME&#160;</td><td class="fielddoc"><p >CMD52 for writing "Function Select" in CCCR. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga618579f234c8defbcfdb926567fdac53a5fccf029ce7fab7358f48a68ed282a03" name="gga618579f234c8defbcfdb926567fdac53a5fccf029ce7fab7358f48a68ed282a03"></a>CYHAL_SDHC_CMD_ABORT&#160;</td><td class="fielddoc"><p >CMD12, CMD52 for writing "I/O Abort" in CCCR. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga3068735fe5a653edd9685a426680718f" name="ga3068735fe5a653edd9685a426680718f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3068735fe5a653edd9685a426680718f">&#9670;&nbsp;</a></span>cyhal_sdhc_error_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__group__hal__sdhc.html#ga3068735fe5a653edd9685a426680718f">cyhal_sdhc_error_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>SDHC command error states. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718faa96477f37a1ee53d18582a46b76d1f7c" name="gga3068735fe5a653edd9685a426680718faa96477f37a1ee53d18582a46b76d1f7c"></a>CYHAL_SDHC_NO_ERR&#160;</td><td class="fielddoc"><p >Last operation did not cause any error status. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa271c70503e2bf0873a64176c6ec8c3b1" name="gga3068735fe5a653edd9685a426680718fa271c70503e2bf0873a64176c6ec8c3b1"></a>CYHAL_SDHC_CMD_TOUT_ERR&#160;</td><td class="fielddoc"><p >Command timeout error. </p>
<p >In SD/eMMC Mode, this event is set only if no response is returned within 64 SD clock cycles from the end bit of the command. If the Host Controller detects a CMD line conflict, along with Command CRC Error bit, this event is set to 1, without waiting for 64 SD/eMMC card clock cycles. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa237628754613a4eeb3453cceeb1a0273" name="gga3068735fe5a653edd9685a426680718fa237628754613a4eeb3453cceeb1a0273"></a>CYHAL_SDHC_CMD_CRC_ERR&#160;</td><td class="fielddoc"><p >Command CRC error. </p>
<p >A Command CRC Error is generated in SD/eMMC mode when:</p><ol type="1">
<li>A response is returned and the Command Timeout Error is set to 0 (indicating no timeout), this bit is set to 1 when detecting a CRC error in the command response.</li>
<li>The Host Controller detects a CMD line conflict by monitoring the CMD line when a command is issued. If the Host Controller drives the CMD line to level 1, but detects level 0 on the CMD line at the next SD clock edge, then the Host Controller aborts the command (stop driving CMD line) and sets this bit to 1. The Command Timeout Error is also set to 1 to distinguish a CMD line conflict. </li>
</ol>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718faf2e99e3da3bd9ba10657f1779f62fc05" name="gga3068735fe5a653edd9685a426680718faf2e99e3da3bd9ba10657f1779f62fc05"></a>CYHAL_SDHC_CMD_END_BIT_ERR&#160;</td><td class="fielddoc"><p >Command End Bit error. </p>
<p >This bit is set after detecting that the end bit of a command response is 0 in SD/eMMC mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa787711273ba228a9d23aff252306a9c9" name="gga3068735fe5a653edd9685a426680718fa787711273ba228a9d23aff252306a9c9"></a>CYHAL_SDHC_CMD_IDX_ERR&#160;</td><td class="fielddoc"><p >Command Index error. </p>
<p >This bit is set if a Command Index error occurs in the command response in SD/eMMC mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa796b6781401eb24261f767f4d6884c52" name="gga3068735fe5a653edd9685a426680718fa796b6781401eb24261f767f4d6884c52"></a>CYHAL_SDHC_DATA_TOUT_ERR&#160;</td><td class="fielddoc"><p >Data Timeout error. </p>
<p >This bit is set in SD/eMMC mode when detecting one of the following timeout conditions:</p><ul>
<li>Busy timeout for R1b, R5b type</li>
<li>Busy timeout after Write CRC status</li>
<li>Write CRC Status timeout</li>
<li>Read Data timeout. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fac8965b429acf3aaf03b49c8e2fed3517" name="gga3068735fe5a653edd9685a426680718fac8965b429acf3aaf03b49c8e2fed3517"></a>CYHAL_SDHC_DATA_CRC_ERR&#160;</td><td class="fielddoc"><p >Data CRC error. </p>
<p >This error occurs in SD/eMMC mode after detecting a CRC error while transferring read data that uses the DAT line, detecting the Write CRC status having a value other than 010 or when writing a CRC status timeout. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa7516f48c153ea4ed61cee8ca39406cfc" name="gga3068735fe5a653edd9685a426680718fa7516f48c153ea4ed61cee8ca39406cfc"></a>CYHAL_SDHC_DATA_END_BIT_ERR&#160;</td><td class="fielddoc"><p >Data End Bit error. </p>
<p >This error occurs in SD/eMMC mode either when detecting 0 at the end bit position of read data that uses the DAT line or at the end bit position of the CRC status. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fad53a96ca3a4e021e167086f02530ed2b" name="gga3068735fe5a653edd9685a426680718fad53a96ca3a4e021e167086f02530ed2b"></a>CYHAL_SDHC_CUR_LMT_ERR&#160;</td><td class="fielddoc"><p >Current Limit error. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa71327bee1ee79a2210c92c130335734c" name="gga3068735fe5a653edd9685a426680718fa71327bee1ee79a2210c92c130335734c"></a>CYHAL_SDHC_AUTO_CMD_ERR&#160;</td><td class="fielddoc"><p >Auto CMD error. </p>
<p >This error status is used by Auto CMD12 and Auto CMD23 in SD/eMMC mode. This bit is set after detecting that any of the bits D00 to D05 in the Auto CMD Error Status register has changed from 0 to 1. D07 is effective in case for Auto CMD12. The Auto CMD Error Status register is valid while this bit is set to 1 and may be cleared by clearing this bit. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa7b671e9257a366ae19f0837daf892569" name="gga3068735fe5a653edd9685a426680718fa7b671e9257a366ae19f0837daf892569"></a>CYHAL_SDHC_ADMA_ERR&#160;</td><td class="fielddoc"><p >ADMA error. </p>
<p >This bit is set when the Host Controller detects an error during an ADMA-based data transfer. The possible reasons for an error:</p><ul>
<li>An error response is received from the System bus;</li>
<li>ADMA3, ADMA2 Descriptors are invalid;</li>
<li>CQE Task or Transfer descriptors are invalid. When an error occurs, the state of the ADMA is saved in the ADMA Error Status register. </li>
</ul>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fa21bfcd58db3c064562a61ddb40decf19" name="gga3068735fe5a653edd9685a426680718fa21bfcd58db3c064562a61ddb40decf19"></a>CYHAL_SDHC_TUNNING_ERR&#160;</td><td class="fielddoc"><p >Tuning error. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718fabc9cfeaf9cbbdbd0076cc55c91dacac0" name="gga3068735fe5a653edd9685a426680718fabc9cfeaf9cbbdbd0076cc55c91dacac0"></a>CYHAL_SDHC_RESP_ERR&#160;</td><td class="fielddoc"><p >Response error. </p>
<p >Host Controller Version 4.00 supports the response error check function to avoid overhead of the response error check by Host Driver during DMA execution. If the Response Error Check Enable is set to 1 in the Transfer Mode register, the Host Controller checks R1 or R5 response. If an error is detected in a response, this bit is set to 1. This is applicable in SD/eMMC mode. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga3068735fe5a653edd9685a426680718faa685467b4ff2fdcc9945db71a2d70a48" name="gga3068735fe5a653edd9685a426680718faa685467b4ff2fdcc9945db71a2d70a48"></a>CYHAL_SDHC_BOOT_ACK_ERR&#160;</td><td class="fielddoc"><p >Boot Acknowledgement error. </p>
<p >This bit is set when there is a timeout for boot acknowledgement or after detecting the boot ACK status having a value other than 010. This is applicable only when boot acknowledgement is expected in eMMC mode. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="gac1bb460226e93509ca7c0015e495d4e9" name="gac1bb460226e93509ca7c0015e495d4e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac1bb460226e93509ca7c0015e495d4e9">&#9670;&nbsp;</a></span>cyhal_sdhc_init_hw()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_init_hw </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>cmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>clk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data4</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data5</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data6</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data7</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>card_detect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>io_volt_sel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>card_pwr_en</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>card_mech_write_prot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>led_ctrl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>emmc_reset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__clock__t">cyhal_clock_t</a> *&#160;</td>
          <td class="paramname"><em>block_clk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize SDHC driver and corresponding hardware. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">obj</td><td>Pointer to an SDHC object. The caller must allocate the memory for this object but the init function will initialize its contents. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>The card configuration object </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">clk</td><td>The pin connected to the clk signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cmd</td><td>The pin connected to the command signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data0</td><td>The pin connected to the data0 signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data1</td><td>The pin connected to the data1 signal. This pin can be NC if bus width is 1-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data2</td><td>The pin connected to the data2 signal. This pin can be NC if bus width is 1-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data3</td><td>The pin connected to the data3 signal. This pin can be NC if bus width is 1-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data4</td><td>The pin connected to the data4 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data5</td><td>The pin connected to the data5 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data6</td><td>The pin connected to the data6 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data7</td><td>The pin connected to the data7 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">card_detect</td><td>The pin connected to the card_detect signal Card is considered as inserted if card_detect pin in low state. This pin can be NC. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">io_volt_sel</td><td>The pin connected to the io_volt_sel signal. This pin changes the logic level on the sd_io_volt_sel line. It assumes that this line is used to control a regulator connected to the VDDIO of the MCU. This regulator allows for switching between the 3.3V and 1.8V signaling. High level on the pin stands for 1.8V signaling, while low - for 3.3V. This pin can be NC. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">card_pwr_en</td><td>The pin connected to the card_pwr_en signal This pin can be used to enable a voltage regulator used to power the card. High level on the pin - card is powered. Low - card is not powered. This pin can be NC. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">card_mech_write_prot</td><td>The pin connected to the card_mech_write_prot signal This pin is used for card mechanical write protect checking. If pin in high state - card is mechanically write protected, if in low state - card is not mechanically write protected. <a class="el" href="group__group__hal__sdhc.html#ga93db8de844c759af35280a968551215c">cyhal_sdhc_is_card_mech_write_protected</a> function can be used to check card write protection state. This pin can be NC. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">led_ctrl</td><td>The pin connected to the led_ctrl signal. This pin can be NC. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">emmc_reset</td><td>The pin connected to the emmc_reset signal. This pin can be NC. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">block_clk</td><td>The clock to use can be shared, if not provided a new clock will be allocated </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the init request </dd></dl>

</div>
</div>
<a id="ga1c042de1a92c5f2ecbdfa5bc989af209" name="ga1c042de1a92c5f2ecbdfa5bc989af209"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1c042de1a92c5f2ecbdfa5bc989af209">&#9670;&nbsp;</a></span>cyhal_sdhc_init_card()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_init_card </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the connected card. </p>
<dl class="section note"><dt>Note</dt><dd>This function should be called after <a class="el" href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">cyhal_sdhc_init_hw</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the card init request </dd></dl>

</div>
</div>
<a id="gabb5aded07e0cf80c36ec8ac0d6a5532a" name="gabb5aded07e0cf80c36ec8ac0d6a5532a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabb5aded07e0cf80c36ec8ac0d6a5532a">&#9670;&nbsp;</a></span>cyhal_sdhc_init()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__config__t">cyhal_sdhc_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>cmd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>clk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data4</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data5</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data6</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>data7</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>card_detect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>io_volt_sel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>card_pwr_en</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>card_mech_write_prot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>led_ctrl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__pin__package__psoc6__01__104__m__csp__ble.html#ga707195ce0627016bf371643bdd9caa51">cyhal_gpio_t</a>&#160;</td>
          <td class="paramname"><em>emmc_reset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__clock__t">cyhal_clock_t</a> *&#160;</td>
          <td class="paramname"><em>block_clk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the SDHC block and connected card. </p>
<p >This function is a combination of <a class="el" href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">cyhal_sdhc_init_hw</a> and <a class="el" href="group__group__hal__sdhc.html#ga1c042de1a92c5f2ecbdfa5bc989af209">cyhal_sdhc_init_card</a> calls. </p><dl class="section note"><dt>Note</dt><dd>refer to <a class="el" href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">cyhal_sdhc_init_hw</a> function description for detailed parameter guidance.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">obj</td><td>Pointer to an SDHC object. The caller must allocate the memory for this object but the init function will initialize its contents. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">config</td><td>The card configuration object </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">clk</td><td>The pin connected to the clk signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cmd</td><td>The pin connected to the command signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data0</td><td>The pin connected to the data0 signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data1</td><td>The pin connected to the data1 signal. This pin can be NC if bus width is 1-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data2</td><td>The pin connected to the data2 signal. This pin can be NC if bus width is 1-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data3</td><td>The pin connected to the data3 signal. This pin can be NC if bus width is 1-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data4</td><td>The pin connected to the data4 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data5</td><td>The pin connected to the data5 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data6</td><td>The pin connected to the data6 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data7</td><td>The pin connected to the data7 signal. This pin can be NC if bus width is less than 8-bit. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">card_detect</td><td>The pin connected to the card_detect signal </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">io_volt_sel</td><td>The pin connected to the io_volt_sel signal </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">card_pwr_en</td><td>The pin connected to the card_pwr_en signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">card_mech_write_prot</td><td>The pin connected to the card_mech_write_prot signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">led_ctrl</td><td>The pin connected to the led_ctrl signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">emmc_reset</td><td>The pin connected to the emmc_reset signal </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">block_clk</td><td>The clock to use can be shared, if not provided a new clock will be allocated </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the init request </dd></dl>

</div>
</div>
<a id="ga3fb2c77d8662f53a21996298cb4581b1" name="ga3fb2c77d8662f53a21996298cb4581b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3fb2c77d8662f53a21996298cb4581b1">&#9670;&nbsp;</a></span>cyhal_sdhc_free()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_sdhc_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Release the SDHC peripheral, not currently invoked. </p>
<p >It requires further resource management.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga2f3442c949be8d599eaefb78cea881a9" name="ga2f3442c949be8d599eaefb78cea881a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2f3442c949be8d599eaefb78cea881a9">&#9670;&nbsp;</a></span>cyhal_sdhc_read()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_read </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Attempts to read data synchronously over the SDHC peripheral. </p>
<p >This will read as many blocks as possible, up to <code>length</code> blocks, into the buffer pointed to by <code>data</code>, then return. The value pointed to by <code>length</code> will be updated to reflect the number of words that were actually read.</p>
<p >See <a class="el" href="group__group__hal__sdhc.html#subsection_sdhc_snippet_2">Snippet 2: Reading a block of data from an SD Card</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address to read data from </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>Pointer to the byte-array where data read from the device should be stored </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">length</td><td>Number of 512 byte blocks to read, updated with the number actually read </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the read request </dd></dl>

</div>
</div>
<a id="gaa5767503dcb047409777306b78ad5355" name="gaa5767503dcb047409777306b78ad5355"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa5767503dcb047409777306b78ad5355">&#9670;&nbsp;</a></span>cyhal_sdhc_write()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Attempts to write data synchronously over SDHC peripheral. </p>
<p >This will write as many blocks as possible, up to <code>length</code> blocks, then return. The value pointed to by <code>length</code> will be updated to reflect the number of words that were actually read.</p>
<p >See <a class="el" href="group__group__hal__sdhc.html#subsection_sdhc_snippet_3">Snippet 3: Writing a block of data to an SD Card</a></p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address to write data to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>Pointer to the byte-array of data to write to the device </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">length</td><td>Number of 512 byte blocks to write, updated with the number actually written </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the write request </dd></dl>

</div>
</div>
<a id="ga1688e1f36e48f09a6bfc5a37675584d3" name="ga1688e1f36e48f09a6bfc5a37675584d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1688e1f36e48f09a6bfc5a37675584d3">&#9670;&nbsp;</a></span>cyhal_sdhc_erase()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_erase </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>start_addr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeout_ms</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Erases a block of data over the SDHC peripheral. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">start_addr</td><td>Is the address of the first byte to erase </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Number of 512 byte blocks (starting at start_addr) to erase </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout_ms</td><td>Timeout value in ms for waiting/polling operations. If zero is provided for this parameter the default value will be used. See implementation specific documentation for timeout details. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the erase request </dd></dl>

</div>
</div>
<a id="ga5c98ada7e14dee0c45efe925ff72a07c" name="ga5c98ada7e14dee0c45efe925ff72a07c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5c98ada7e14dee0c45efe925ff72a07c">&#9670;&nbsp;</a></span>cyhal_sdhc_read_async()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_read_async </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start SDHC asynchronous read. </p>
<p >This will transfer <code>length</code> 512 byte blocks into the buffer pointed to by <code>data</code> in the background. When the requested quantity of data has been read, the <a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bad08d507a635f8269ba7649643339f213">CYHAL_SDHC_XFER_COMPLETE</a> event will be raised. See <a class="el" href="group__group__hal__sdhc.html#ga1fe53d842050280b8827e9a41545f461">cyhal_sdhc_register_callback</a> and <a class="el" href="group__group__hal__sdhc.html#ga3a0865321bd9284606655f9fb9402339">cyhal_sdhc_enable_event</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object that holds the transfer information </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address to read data from </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">data</td><td>The receive buffer </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">length</td><td>Number of 512 byte blocks to read, updated with the number actually read </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the read_async request </dd></dl>

</div>
</div>
<a id="ga3daf1bc8096d375ced9003f63efc18aa" name="ga3daf1bc8096d375ced9003f63efc18aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3daf1bc8096d375ced9003f63efc18aa">&#9670;&nbsp;</a></span>cyhal_sdhc_write_async()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_write_async </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start asynchronous SDHC write. </p>
<p >This will transfer <code>length</code> 512 byte blocks from the buffer pointed to by <code>data</code> in the background. When the requested quantity of data has been written, the <a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bad08d507a635f8269ba7649643339f213">CYHAL_SDHC_XFER_COMPLETE</a> event will be raised. See <a class="el" href="group__group__hal__sdhc.html#ga1fe53d842050280b8827e9a41545f461">cyhal_sdhc_register_callback</a> and <a class="el" href="group__group__hal__sdhc.html#ga3a0865321bd9284606655f9fb9402339">cyhal_sdhc_enable_event</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object that holds the transfer information </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address to write data to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>The transmit buffer </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">length</td><td>The number of 512 byte blocks to write, updated with the number actually written </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the write_async request </dd></dl>

</div>
</div>
<a id="gad28a8b2178173ce3ee981453ed3ce12c" name="gad28a8b2178173ce3ee981453ed3ce12c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad28a8b2178173ce3ee981453ed3ce12c">&#9670;&nbsp;</a></span>cyhal_sdhc_is_busy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cyhal_sdhc_is_busy </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the specified SDHC peripheral is in use. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC peripheral to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Indication of whether the SDHC is still transmitting </dd></dl>

</div>
</div>
<a id="ga96cb1dc3bbdd8ac61b5303ee3795f713" name="ga96cb1dc3bbdd8ac61b5303ee3795f713"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga96cb1dc3bbdd8ac61b5303ee3795f713">&#9670;&nbsp;</a></span>cyhal_sdhc_abort_async()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_abort_async </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Abort an SDHC transfer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC peripheral to stop </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the abort_async request </dd></dl>

</div>
</div>
<a id="ga1fe53d842050280b8827e9a41545f461" name="ga1fe53d842050280b8827e9a41545f461"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1fe53d842050280b8827e9a41545f461">&#9670;&nbsp;</a></span>cyhal_sdhc_register_callback()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_sdhc_register_callback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__sdhc.html#gaded71f4751306e4983c1e8315c569fa1">cyhal_sdhc_event_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register an SDHC callback handler. </p>
<p >This function will be called when one of the events enabled by <a class="el" href="group__group__hal__sdhc.html#ga3a0865321bd9284606655f9fb9402339">cyhal_sdhc_enable_event</a> occurs.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The callback handler which will be invoked when the event fires </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">callback_arg</td><td>Generic argument that will be provided to the callback when called </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga3a0865321bd9284606655f9fb9402339" name="ga3a0865321bd9284606655f9fb9402339"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a0865321bd9284606655f9fb9402339">&#9670;&nbsp;</a></span>cyhal_sdhc_enable_event()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_sdhc_enable_event </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__sdhc.html#gab58a2ffca59383a72cf8bc49d74cf17b">cyhal_sdhc_event_t</a>&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>intr_priority</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configure SDHC event enablement. </p>
<p >When an enabled event occurs, the function specified by <a class="el" href="group__group__hal__sdhc.html#ga1fe53d842050280b8827e9a41545f461">cyhal_sdhc_register_callback</a> will be called.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">event</td><td>The SDHC event type </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">intr_priority</td><td>The priority for NVIC interrupt events </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">enable</td><td>True to turn on interrupts, False to turn off </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga616760d8368e5253716bf8bb5aaec2d9" name="ga616760d8368e5253716bf8bb5aaec2d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga616760d8368e5253716bf8bb5aaec2d9">&#9670;&nbsp;</a></span>cyhal_sdhc_is_card_inserted()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cyhal_sdhc_is_card_inserted </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if SD card is inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC peripheral to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Indication of whether the card is inserted. </dd></dl>

</div>
</div>
<a id="ga93db8de844c759af35280a968551215c" name="ga93db8de844c759af35280a968551215c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga93db8de844c759af35280a968551215c">&#9670;&nbsp;</a></span>cyhal_sdhc_is_card_mech_write_protected()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cyhal_sdhc_is_card_mech_write_protected </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the inserted SD card is mechanically write protected. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC peripheral to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Indication of whether the inserted SD card is mechanically write protected </dd></dl>

</div>
</div>
<a id="ga3f055dca9939fa3d20e4846f8348a856" name="ga3f055dca9939fa3d20e4846f8348a856"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3f055dca9939fa3d20e4846f8348a856">&#9670;&nbsp;</a></span>cyhal_sdhc_get_block_count()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_get_block_count </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>block_count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get block count of inserted SD card / eMMC. </p>
<dl class="section note"><dt>Note</dt><dd>SDHC driver should be initialized with <a class="el" href="group__group__hal__sdhc.html#gabb5aded07e0cf80c36ec8ac0d6a5532a">cyhal_sdhc_init</a> prior to using this function.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">block_count</td><td>Pointer to variable where block count will be stored </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="ga61cd4c3f5f243e1dfc44ad91f2056d60" name="ga61cd4c3f5f243e1dfc44ad91f2056d60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga61cd4c3f5f243e1dfc44ad91f2056d60">&#9670;&nbsp;</a></span>cyhal_sdhc_set_frequency()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_set_frequency </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>hz</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>negotiate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the SD bus frequency (frequency on which SD card / eMMC is accessed) </p>
<dl class="section note"><dt>Note</dt><dd>Actual frequency may differ from the desired frequency due to available dividers and the frequency of source clock. Function will set the closest possible (but not greater than) frequency to what was requested. Use <a class="el" href="group__group__hal__sdhc.html#ga38e75dc7fda0b2eaef8a064566cba6ca">cyhal_sdhc_get_frequency</a> function to get actual frequency value that was achieved and set. </dd>
<dd>
If data timeout was configured by <a class="el" href="group__group__hal__sdhc.html#ga016c5b6b472837548527230c9a98edff">cyhal_sdhc_set_data_read_timeout</a>, it can be automaticaly recalculated according to new SD bus frequency. For details, please refer to <a class="el" href="group__group__hal__sdhc.html#ga016c5b6b472837548527230c9a98edff">cyhal_sdhc_set_data_read_timeout</a> function description.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">hz</td><td>Desired SD bus frequency in Hz </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">negotiate</td><td>Whether new frequency value needs to be negotiated with card or not. true is recommended and it means that new frequency will be negotiated. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="ga38e75dc7fda0b2eaef8a064566cba6ca" name="ga38e75dc7fda0b2eaef8a064566cba6ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga38e75dc7fda0b2eaef8a064566cba6ca">&#9670;&nbsp;</a></span>cyhal_sdhc_get_frequency()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t cyhal_sdhc_get_frequency </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the actual frequency that SD bus is configured for. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Frequency in Hz </dd></dl>

</div>
</div>
<a id="ga016c5b6b472837548527230c9a98edff" name="ga016c5b6b472837548527230c9a98edff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga016c5b6b472837548527230c9a98edff">&#9670;&nbsp;</a></span>cyhal_sdhc_set_data_read_timeout()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_set_data_read_timeout </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>auto_reconfigure</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the maximum time to wait for data from the card. </p>
<p >The time is specified in number of card clock cycles. With SD bus frequency changed by <a class="el" href="group__group__hal__sdhc.html#ga61cd4c3f5f243e1dfc44ad91f2056d60">cyhal_sdhc_set_frequency</a>, timeout can automaticaly be recalculated according to new clock frequency. This can be activated by 'auto_reconfigure' parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>Time to wait for data from the card. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">auto_reconfigure</td><td>Timeout value will be automaticaly reconfigured upon clock change</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="ga60d64dc06c541217ebe7f36dc6498ace" name="ga60d64dc06c541217ebe7f36dc6498ace"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga60d64dc06c541217ebe7f36dc6498ace">&#9670;&nbsp;</a></span>cyhal_sdhc_config_data_transfer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_config_data_transfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__data__config__t">cyhal_sdhc_data_config_t</a> *&#160;</td>
          <td class="paramname"><em>data_config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the SD block and DMA for a data transfer. </p>
<p >It does not start a transfer. <a class="el" href="group__group__hal__sdhc.html#gafb5534f9654bbd459481936c5abe40ad">cyhal_sdhc_send_cmd</a> needs to be called after this function in order to start data transfer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">data_config</td><td>Data transfer configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="gafb5534f9654bbd459481936c5abe40ad" name="gafb5534f9654bbd459481936c5abe40ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb5534f9654bbd459481936c5abe40ad">&#9670;&nbsp;</a></span>cyhal_sdhc_send_cmd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_send_cmd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__sdhc.html#structcyhal__sdhc__cmd__config__t">cyhal_sdhc_cmd_config_t</a> *&#160;</td>
          <td class="paramname"><em>cmd_config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sends a command to the card and wait until it is sent. </p>
<p >If the command assumes data transfer via data lines, <a class="el" href="group__group__hal__sdhc.html#ga60d64dc06c541217ebe7f36dc6498ace">cyhal_sdhc_config_data_transfer</a> function needs to be called prior to this one. The response of issued command can be retrieved by using <a class="el" href="group__group__hal__sdhc.html#gad9bff4cfd487a33cd6dd62d49e7d2969">cyhal_sdhc_get_response</a> function. </p><dl class="section note"><dt>Note</dt><dd>Function does not wait until data (configured with <a class="el" href="group__group__hal__sdhc.html#ga60d64dc06c541217ebe7f36dc6498ace">cyhal_sdhc_config_data_transfer</a>) transfer complete. In order to do so, user can:<ul>
<li>register <a class="el" href="group__group__hal__sdhc.html#ggab58a2ffca59383a72cf8bc49d74cf17bad08d507a635f8269ba7649643339f213">CYHAL_SDHC_XFER_COMPLETE</a> and wait for it</li>
<li>wait until <a class="el" href="group__group__hal__sdhc.html#gad28a8b2178173ce3ee981453ed3ce12c">cyhal_sdhc_is_busy</a> return false</li>
<li>use <a class="el" href="group__group__hal__sdhc.html#ga670468d4cd69e7b65225faa35996575c">cyhal_sdhc_wait_transfer_complete</a> function</li>
</ul>
</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cmd_config</td><td>Command configuration </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="gad9bff4cfd487a33cd6dd62d49e7d2969" name="gad9bff4cfd487a33cd6dd62d49e7d2969"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad9bff4cfd487a33cd6dd62d49e7d2969">&#9670;&nbsp;</a></span>cyhal_sdhc_get_response()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_get_response </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&#160;</td>
          <td class="paramname"><em>response</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>large_response</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a response of last issued by <a class="el" href="group__group__hal__sdhc.html#gafb5534f9654bbd459481936c5abe40ad">cyhal_sdhc_send_cmd</a> function command. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">response</td><td>Pointer to array where response will be stored </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">large_response</td><td>If true, the expected response is 136 bits, false - 48 bits, which corresponds to 120 and 32 bits of useful for application data respectively. So for large_response 4 uint32_t element array can be used while for not large_response 1 uint32_t value will be enough. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="ga670468d4cd69e7b65225faa35996575c" name="ga670468d4cd69e7b65225faa35996575c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga670468d4cd69e7b65225faa35996575c">&#9670;&nbsp;</a></span>cyhal_sdhc_wait_transfer_complete()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_wait_transfer_complete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Wait for asynchronous data transfer to complete. </p>
<p >Such data transfer can be triggered by <a class="el" href="group__group__hal__sdhc.html#ga3daf1bc8096d375ced9003f63efc18aa">cyhal_sdhc_write_async</a>, <a class="el" href="group__group__hal__sdhc.html#ga5c98ada7e14dee0c45efe925ff72a07c">cyhal_sdhc_read_async</a> or by <a class="el" href="group__group__hal__sdhc.html#ga60d64dc06c541217ebe7f36dc6498ace">cyhal_sdhc_config_data_transfer</a> + <a class="el" href="group__group__hal__sdhc.html#gafb5534f9654bbd459481936c5abe40ad">cyhal_sdhc_send_cmd</a> functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="gae6612fc9362124a783f8b47add69dde4" name="gae6612fc9362124a783f8b47add69dde4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae6612fc9362124a783f8b47add69dde4">&#9670;&nbsp;</a></span>cyhal_sdhc_set_io_voltage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_set_io_voltage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__sdhc.html#ga11968d8b79af97a6a319fa709d84861e">cyhal_sdhc_io_voltage_t</a>&#160;</td>
          <td class="paramname"><em>io_voltage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__group__hal__sdhc.html#ga5e3877ab007a39419bdefc0abae2713d">cyhal_sdhc_io_volt_action_type_t</a>&#160;</td>
          <td class="paramname"><em>io_switch_type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the voltage level of the I/O lines. </p>
<dl class="section note"><dt>Note</dt><dd>This function requires io_volt_sel and (for some cases) card_pwr_en pins to be assigned. Please refer to <a class="el" href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">cyhal_sdhc_init_hw</a> for pin details. </dd>
<dd>
Switching from 1.8V to 3.3V can be done only via power cycle sequence (power down card, wait, power up card), which is supported by HAL driver and performed only if CYHAL_SDHC_IO_VOLT_ACTION_NEGOTIATE selected. card_pwr_en pin has to be assigned. Please refer to <a class="el" href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">cyhal_sdhc_init_hw</a> for pin details.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">io_voltage</td><td>I/O voltage to be set on lines </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">io_switch_type</td><td>Defines how I/O voltage will be switched </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="gae07049e08e19fe729d8a5705ea3765c0" name="gae07049e08e19fe729d8a5705ea3765c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae07049e08e19fe729d8a5705ea3765c0">&#9670;&nbsp;</a></span>cyhal_sdhc_get_io_voltage()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__hal__sdhc.html#ga11968d8b79af97a6a319fa709d84861e">cyhal_sdhc_io_voltage_t</a> cyhal_sdhc_get_io_voltage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the current voltage level of the I/O lines. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Current I/O voltage setting value </dd></dl>

</div>
</div>
<a id="ga53fbe8b3e43ff23270c6fe09c5eceea7" name="ga53fbe8b3e43ff23270c6fe09c5eceea7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga53fbe8b3e43ff23270c6fe09c5eceea7">&#9670;&nbsp;</a></span>cyhal_sdhc_set_bus_width()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_set_bus_width </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>bus_width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>configure_card</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Configures data bus width on host side and (optionally) informs the card about new width configuration. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">bus_width</td><td>The desired bus width, 1-bit, 4-bit, 8-bit </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">configure_card</td><td>Whether card needs to be configured with new bus width. true is recommended. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="gaf8864c53c6bcb103a95040874af92102" name="gaf8864c53c6bcb103a95040874af92102"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf8864c53c6bcb103a95040874af92102">&#9670;&nbsp;</a></span>cyhal_sdhc_get_bus_width()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t cyhal_sdhc_get_bus_width </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns currently configured data bus width. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Currently configured bus width, 1-bit, 4-bit, 8-bit </dd></dl>

</div>
</div>
<a id="ga833da009de635170a856779d34f6a1e5" name="ga833da009de635170a856779d34f6a1e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga833da009de635170a856779d34f6a1e5">&#9670;&nbsp;</a></span>cyhal_sdhc_get_last_command_errors()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__hal__sdhc.html#ga3068735fe5a653edd9685a426680718f">cyhal_sdhc_error_type_t</a> cyhal_sdhc_get_last_command_errors </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns last issued SD operation error states. </p>
<p >This function can be used for error checking after any of cmd / data transfer-related operations. For list of possible errors, that are being tracked, please refer to <a class="el" href="group__group__hal__sdhc.html#ga3068735fe5a653edd9685a426680718f">cyhal_sdhc_error_type_t</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Errors occurred during last command </dd></dl>

</div>
</div>
<a id="gaaee5b8314adf44cb3f10cdac88537e98" name="gaaee5b8314adf44cb3f10cdac88537e98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaee5b8314adf44cb3f10cdac88537e98">&#9670;&nbsp;</a></span>cyhal_sdhc_clear_errors()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_sdhc_clear_errors </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Clears SDHC hardware error states. </p>
<p >Error statuses are indicated by <a class="el" href="group__group__hal__sdhc.html#ga833da009de635170a856779d34f6a1e5">cyhal_sdhc_get_last_command_errors</a> function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga88369bc8abc3567def254b6ca65291be" name="ga88369bc8abc3567def254b6ca65291be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga88369bc8abc3567def254b6ca65291be">&#9670;&nbsp;</a></span>cyhal_sdhc_software_reset()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cyhal_sdhc_software_reset </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Resets CMD and Data lines and corresponding circuits of SD Host. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gaf3fd9221a57b5667adc97b31ad71fdd5" name="gaf3fd9221a57b5667adc97b31ad71fdd5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf3fd9221a57b5667adc97b31ad71fdd5">&#9670;&nbsp;</a></span>cyhal_sdhc_enable_card_power()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_enable_card_power </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Powers up / down the card based on provided parameter. </p>
<p >This function uses card_pwr_en pin to change card power state. Please refer to <a class="el" href="group__group__hal__sdhc.html#gac1bb460226e93509ca7c0015e495d4e9">cyhal_sdhc_init_hw</a> for pin description.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC peripheral to configure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">enable</td><td>Card is powered if true, not powered if false. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
<a id="ga64586e3ef99e7207043ab1f5b31d43fc" name="ga64586e3ef99e7207043ab1f5b31d43fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga64586e3ef99e7207043ab1f5b31d43fc">&#9670;&nbsp;</a></span>cyhal_sdhc_init_cfg()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__group__result.html#gaca79700fcc701534ce61778a9bcf57d1">cy_rslt_t</a> cyhal_sdhc_init_cfg </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__t">cyhal_sdhc_t</a> *&#160;</td>
          <td class="paramname"><em>obj</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__group__hal__impl__hw__types.html#structcyhal__sdhc__configurator__t">cyhal_sdhc_configurator_t</a> *&#160;</td>
          <td class="paramname"><em>cfg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initialize the SDHC peripheral using a configurator generated configuration struct. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">obj</td><td>The SDHC peripheral to configure </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">cfg</td><td>Configuration structure generated by a configurator. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The status of the operation </dd></dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part
<div id="nav-path" class="navpath">
    <ul>
        <li class="footer">
            Generated for <b>Hardware Abstraction Layer (HAL)</b> by <b>Cypress Semiconductor Corporation</b>.
            All rights reserved.
        </li>
    </ul>
</div>
-->
</body>
</html>
